Asynchronous messaging involves communication between two or more applications. This communication is accomplished by way of putting and getting messages. The applications may attach to the same or different message queue managers, which are entities that manage receiving, storing, and transmitting messages. The message queue managers may be hosted on the same or different nodes in a computer network.
When a message is put, it is possible for the processing of that message to be delayed. The message might be delayed at the source message queue manager, the destination message queue manager, or any message queue manager through which the message passes.
Current solutions to message delays typically involve generating an expiry message to communicate that the original message has not been delivered and instead has been deleted. The application that receives the expiry message is typically the application that generated the original message and typically takes an application specific action upon receipt of the expiry message. Such actions may include raising an alert and regenerating the original message.
What is needed is a method for effectively processing messages that have been delayed without deleting the original message.